package
{
		import flash.display.Sprite;
		import flash.text.TextField;
		import flash.events.MouseEvent;
		import flash.geom.Rectangle;
		import flash.text.TextLineMetrics;
		
		public class TestTextField5 extends Sprite{
			private var _field:TextField;
			private var _highlight:Sprite;
			public function TestTextField5(){
				_field=new TextField();
				_field.border=true;
				_field.background=true;
				_field.multiline=true;
				_field.wordWrap=true;
				_field.selectable=false;
				_field.width=400;
				_field.height=400;
				addChild(_field);
				_field.text="Loremipsumdolorsitamet,consectetueradipiscingelit.Morbitortorpurus,\n"+
					"aliqueta,ornareac,suscipita,est.Nullamhendreritmolestieerat.Nuncnullatortor,ullamcorperet,"+
					"elementumvel,fringillased,dui.Praesentfermentuminterdumorci.";

				_field.addEventListener(MouseEvent.CLICK,onDoubleClick);
				_highlight=new Sprite();
				addChild(_highlight);
			}
			
			private function onDoubleClick(event:MouseEvent):void{
				var index:int=_field.getCharIndexAtPoint(mouseX,mouseY);
				var startIndex:int=_field.getFirstCharInParagraph(index);
				var stopIndex:int=startIndex+_field.getParagraphLength(index);
				var startLine:int=_field.getLineIndexOfChar(startIndex);
				var stopLine:int=_field.getLineIndexOfChar(stopIndex-1);
				var metrics:TextLineMetrics;
				var lineCharacter:int;
				var rectangle:Rectangle;
				_highlight.graphics.clear();
				_highlight.graphics.lineStyle(0,0,0);
				for(var i:int=startLine;i<=stopLine;i++){
					lineCharacter=_field.getLineOffset(i);
					rectangle=_field.getCharBoundaries(lineCharacter);
					metrics=_field.getLineMetrics(i);
					_highlight.graphics.beginFill(0x00FFFF,.25);
					_highlight.graphics.drawRect(rectangle.x,rectangle.y,metrics.width,metrics.height);
					_highlight.graphics.endFill();
				}
			}
		}

}